﻿#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>

typedef int LTDataType;
typedef struct ListNode
{
	int val;
	struct ListNode* prev;
	struct ListNode* next;
}LTNode;

//void LTInit(LTNode** pphead);
//初始化
LTNode* LTInit();
//销毁链表
void LTDestroy(LTNode* phead);
//创建节点
LTNode* BuyNode(LTDataType x);
//打印链表
void LTPrint(LTNode* phead);
//判断链表是否为空
bool LTEmpty(LTNode* phead);
//尾插
void LTPushBack(LTNode* phead, LTDataType x);
//尾删
void LTPopBack(LTNode* phead);
//头插
void LTPushFront(LTNode* phead, LTDataType x);
//头删
void LTPopFront(LTNode* phead);
//在pos位置之后插入数据
void LTInsert(LTNode* pos, LTDataType x);
//删除pos节点
void LTErase(LTNode* pos);
//链表查找
LTNode* LTFind(LTNode* phead, LTDataType x);